﻿
namespace EF41RiaServicesSample.Web.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // MetadataTypeAttribute は、Country クラスの追加メタデータを含む
    //クラスとして CountryMetadata を識別します。
    [MetadataTypeAttribute(typeof(Country.CountryMetadata))]
    public partial class Country
    {

        // このクラスを使用すると、Country クラスのプロパティにカスタムの
        //属性を追加できます。
        //
        // たとえば、次の例は Xyz プロパティを
        //必須プロパティに設定し、有効な値の形式を指定します:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CountryMetadata
        {

            // メタデータ クラスはインスタンス化するためのものではありません。
            private CountryMetadata()
            {
            }

            public int CountryId { get; set; }

            public string CountryName { get; set; }
        }
    }

    // MetadataTypeAttribute は、Driver クラスの追加メタデータを含む
    //クラスとして DriverMetadata を識別します。
    [MetadataTypeAttribute(typeof(Driver.DriverMetadata))]
    public partial class Driver
    {

        // このクラスを使用すると、Driver クラスのプロパティにカスタムの
        //属性を追加できます。
        //
        // たとえば、次の例は Xyz プロパティを
        //必須プロパティに設定し、有効な値の形式を指定します:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DriverMetadata
        {

            // メタデータ クラスはインスタンス化するためのものではありません。
            private DriverMetadata()
            {
            }

            public int Age { get; set; }

            public int CountryId { get; set; }

            public int DriverId { get; set; }

            public string DriverName { get; set; }
        }
    }
}
